// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗  
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝  
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// -----------------------------------------------
//  
// This file is automatically generated 
// Please do not edit these files manually
// Run the following in the root of the repos:
//
// 		*NIX 		:	./build.sh codegen
// 		Windows 	:	build.bat codegen
//
// -----------------------------------------------
// ReSharper disable RedundantUsingDirective
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Elasticsearch.Net;
using Elastic.Transport;
using static Elastic.Transport.HttpMethod;

// ReSharper disable InterpolatedStringExpressionIsNotIFormattable
// ReSharper disable once CheckNamespace
// ReSharper disable InterpolatedStringExpressionIsNotIFormattable
// ReSharper disable RedundantExtendsListEntry
namespace Elasticsearch.Net.Specification.MachineLearningApi
{
	///<summary>
	/// Machine Learning APIs.
	/// <para>Not intended to be instantiated directly. Use the <see cref = "IElasticLowLevelClient.MachineLearning"/> property
	/// on <see cref = "IElasticLowLevelClient"/>.
	///</para>
	///</summary>
	public class LowLevelMachineLearningNamespace : NamespacedClientProxy
	{
		internal LowLevelMachineLearningNamespace(ElasticLowLevelClient client): base(client)
		{
		}

		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_close <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html</para></summary>
		///<param name = "jobId">The name of the job to close</param>
		///<param name = "body">The URL params optionally sent in the body</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse CloseJob<TResponse>(string jobId, PostData body, CloseJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_close"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_close <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html</para></summary>
		///<param name = "jobId">The name of the job to close</param>
		///<param name = "body">The URL params optionally sent in the body</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.close_job", "job_id, body")]
		public Task<TResponse> CloseJobAsync<TResponse>(string jobId, PostData body, CloseJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_close"), ctx, body, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/calendars/{calendar_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteCalendar<TResponse>(string calendarId, DeleteCalendarRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/calendars/{calendarId:calendarId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/calendars/{calendar_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_calendar", "calendar_id")]
		public Task<TResponse> DeleteCalendarAsync<TResponse>(string calendarId, DeleteCalendarRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/calendars/{calendarId:calendarId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/calendars/{calendar_id}/events/{event_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-event.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "eventId">The ID of the event to remove from the calendar</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteCalendarEvent<TResponse>(string calendarId, string eventId, DeleteCalendarEventRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/calendars/{calendarId:calendarId}/events/{eventId:eventId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/calendars/{calendar_id}/events/{event_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-event.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "eventId">The ID of the event to remove from the calendar</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_calendar_event", "calendar_id, event_id")]
		public Task<TResponse> DeleteCalendarEventAsync<TResponse>(string calendarId, string eventId, DeleteCalendarEventRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/calendars/{calendarId:calendarId}/events/{eventId:eventId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/calendars/{calendar_id}/jobs/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-job.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "jobId">The ID of the job to remove from the calendar</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteCalendarJob<TResponse>(string calendarId, string jobId, DeleteCalendarJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/calendars/{calendarId:calendarId}/jobs/{jobId:jobId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/calendars/{calendar_id}/jobs/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-job.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "jobId">The ID of the job to remove from the calendar</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_calendar_job", "calendar_id, job_id")]
		public Task<TResponse> DeleteCalendarJobAsync<TResponse>(string calendarId, string jobId, DeleteCalendarJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/calendars/{calendarId:calendarId}/jobs/{jobId:jobId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/data_frame/analytics/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse DeleteDataFrameAnalytics<TResponse>(string id, DeleteDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/data_frame/analytics/{id:id}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/data_frame/analytics/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.delete_data_frame_analytics", "id")]
		public Task<TResponse> DeleteDataFrameAnalyticsAsync<TResponse>(string id, DeleteDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/data_frame/analytics/{id:id}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/datafeeds/{datafeed_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteDatafeed<TResponse>(string datafeedId, DeleteDatafeedRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/datafeeds/{datafeedId:datafeedId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/datafeeds/{datafeed_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_datafeed", "datafeed_id")]
		public Task<TResponse> DeleteDatafeedAsync<TResponse>(string datafeedId, DeleteDatafeedRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/datafeeds/{datafeedId:datafeedId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/_delete_expired_data/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html</para></summary>
		///<param name = "jobId">The ID of the job(s) to perform expired data hygiene for</param>
		///<param name = "body">deleting expired data parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteExpiredData<TResponse>(string jobId, PostData body, DeleteExpiredDataRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/_delete_expired_data/{jobId:jobId}"), body, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/_delete_expired_data/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html</para></summary>
		///<param name = "jobId">The ID of the job(s) to perform expired data hygiene for</param>
		///<param name = "body">deleting expired data parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_expired_data", "job_id, body")]
		public Task<TResponse> DeleteExpiredDataAsync<TResponse>(string jobId, PostData body, DeleteExpiredDataRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/_delete_expired_data/{jobId:jobId}"), ctx, body, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/_delete_expired_data <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html</para></summary>
		///<param name = "body">deleting expired data parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteExpiredData<TResponse>(PostData body, DeleteExpiredDataRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, "_ml/_delete_expired_data", body, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/_delete_expired_data <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html</para></summary>
		///<param name = "body">deleting expired data parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_expired_data", "body")]
		public Task<TResponse> DeleteExpiredDataAsync<TResponse>(PostData body, DeleteExpiredDataRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, "_ml/_delete_expired_data", ctx, body, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/filters/{filter_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteFilter<TResponse>(string filterId, DeleteFilterRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/filters/{filterId:filterId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/filters/{filter_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_filter", "filter_id")]
		public Task<TResponse> DeleteFilterAsync<TResponse>(string filterId, DeleteFilterRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/filters/{filterId:filterId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/anomaly_detectors/{job_id}/_forecast/{forecast_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-forecast.html</para></summary>
		///<param name = "jobId">The ID of the job from which to delete forecasts</param>
		///<param name = "forecastId">The ID of the forecast to delete, can be comma delimited list or `_all`</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteForecast<TResponse>(string jobId, string forecastId, DeleteForecastRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/anomaly_detectors/{jobId:jobId}/_forecast/{forecastId:forecastId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/anomaly_detectors/{job_id}/_forecast/{forecast_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-forecast.html</para></summary>
		///<param name = "jobId">The ID of the job from which to delete forecasts</param>
		///<param name = "forecastId">The ID of the forecast to delete, can be comma delimited list or `_all`</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_forecast", "job_id, forecast_id")]
		public Task<TResponse> DeleteForecastAsync<TResponse>(string jobId, string forecastId, DeleteForecastRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/anomaly_detectors/{jobId:jobId}/_forecast/{forecastId:forecastId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/anomaly_detectors/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html</para></summary>
		///<param name = "jobId">The ID of the job to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteJob<TResponse>(string jobId, DeleteJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/anomaly_detectors/{jobId:jobId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/anomaly_detectors/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html</para></summary>
		///<param name = "jobId">The ID of the job to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_job", "job_id")]
		public Task<TResponse> DeleteJobAsync<TResponse>(string jobId, DeleteJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/anomaly_detectors/{jobId:jobId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse DeleteModelSnapshot<TResponse>(string jobId, string snapshotId, DeleteModelSnapshotRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.delete_model_snapshot", "job_id, snapshot_id")]
		public Task<TResponse> DeleteModelSnapshotAsync<TResponse>(string jobId, string snapshotId, DeleteModelSnapshotRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}"), ctx, null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/trained_models/{model_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-trained-models.html</para></summary>
		///<param name = "modelId">The ID of the trained model to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse DeleteTrainedModel<TResponse>(string modelId, DeleteTrainedModelRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(DELETE, Url($"_ml/trained_models/{modelId:modelId}"), null, RequestParams(requestParameters));
		///<summary>DELETE on /_ml/trained_models/{model_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-trained-models.html</para></summary>
		///<param name = "modelId">The ID of the trained model to delete</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.delete_trained_model", "model_id")]
		public Task<TResponse> DeleteTrainedModelAsync<TResponse>(string modelId, DeleteTrainedModelRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_ml/trained_models/{modelId:modelId}"), ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/_estimate_model_memory <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-apis.html</para></summary>
		///<param name = "body">The analysis config, plus cardinality estimates for fields it references</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse EstimateModelMemory<TResponse>(PostData body, EstimateModelMemoryRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/anomaly_detectors/_estimate_model_memory", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/_estimate_model_memory <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-apis.html</para></summary>
		///<param name = "body">The analysis config, plus cardinality estimates for fields it references</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.estimate_model_memory", "body")]
		public Task<TResponse> EstimateModelMemoryAsync<TResponse>(PostData body, EstimateModelMemoryRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/anomaly_detectors/_estimate_model_memory", ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/_evaluate <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/evaluate-dfanalytics.html</para></summary>
		///<param name = "body">The evaluation definition</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse EvaluateDataFrame<TResponse>(PostData body, EvaluateDataFrameRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/data_frame/_evaluate", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/_evaluate <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/evaluate-dfanalytics.html</para></summary>
		///<param name = "body">The evaluation definition</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.evaluate_data_frame", "body")]
		public Task<TResponse> EvaluateDataFrameAsync<TResponse>(PostData body, EvaluateDataFrameRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/data_frame/_evaluate", ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/_explain <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/explain-dfanalytics.html</para></summary>
		///<param name = "body">The data frame analytics config to explain</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse ExplainDataFrameAnalytics<TResponse>(PostData body, ExplainDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/data_frame/analytics/_explain", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/_explain <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/explain-dfanalytics.html</para></summary>
		///<param name = "body">The data frame analytics config to explain</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.explain_data_frame_analytics", "body")]
		public Task<TResponse> ExplainDataFrameAnalyticsAsync<TResponse>(PostData body, ExplainDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/data_frame/analytics/_explain", ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_explain <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/explain-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to explain</param>
		///<param name = "body">The data frame analytics config to explain</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse ExplainDataFrameAnalytics<TResponse>(string id, PostData body, ExplainDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_explain"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_explain <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/explain-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to explain</param>
		///<param name = "body">The data frame analytics config to explain</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.explain_data_frame_analytics", "id, body")]
		public Task<TResponse> ExplainDataFrameAnalyticsAsync<TResponse>(string id, PostData body, ExplainDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_explain"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/find_file_structure <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-find-file-structure.html</para></summary>
		///<param name = "body">The contents of the file to be analyzed</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse FindFileStructure<TResponse>(PostData body, FindFileStructureRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/find_file_structure", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/find_file_structure <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-find-file-structure.html</para></summary>
		///<param name = "body">The contents of the file to be analyzed</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.find_file_structure", "body")]
		public Task<TResponse> FindFileStructureAsync<TResponse>(PostData body, FindFileStructureRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/find_file_structure", ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_flush <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html</para></summary>
		///<param name = "jobId">The name of the job to flush</param>
		///<param name = "body">Flush parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse FlushJob<TResponse>(string jobId, PostData body, FlushJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_flush"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_flush <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html</para></summary>
		///<param name = "jobId">The name of the job to flush</param>
		///<param name = "body">Flush parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.flush_job", "job_id, body")]
		public Task<TResponse> FlushJobAsync<TResponse>(string jobId, PostData body, FlushJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_flush"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_forecast <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-forecast.html</para></summary>
		///<param name = "jobId">The ID of the job to forecast for</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse ForecastJob<TResponse>(string jobId, ForecastJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_forecast"), null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_forecast <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-forecast.html</para></summary>
		///<param name = "jobId">The ID of the job to forecast for</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.forecast", "job_id")]
		public Task<TResponse> ForecastJobAsync<TResponse>(string jobId, ForecastJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_forecast"), ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/buckets/{timestamp} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html</para></summary>
		///<param name = "jobId">ID of the job to get bucket results from</param>
		///<param name = "timestamp">The timestamp of the desired single bucket result</param>
		///<param name = "body">Bucket selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetBuckets<TResponse>(string jobId, string timestamp, PostData body, GetBucketsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/buckets/{timestamp:timestamp}"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/buckets/{timestamp} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html</para></summary>
		///<param name = "jobId">ID of the job to get bucket results from</param>
		///<param name = "timestamp">The timestamp of the desired single bucket result</param>
		///<param name = "body">Bucket selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_buckets", "job_id, timestamp, body")]
		public Task<TResponse> GetBucketsAsync<TResponse>(string jobId, string timestamp, PostData body, GetBucketsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/buckets/{timestamp:timestamp}"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/buckets <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html</para></summary>
		///<param name = "jobId">ID of the job to get bucket results from</param>
		///<param name = "body">Bucket selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetBuckets<TResponse>(string jobId, PostData body, GetBucketsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/buckets"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/buckets <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html</para></summary>
		///<param name = "jobId">ID of the job to get bucket results from</param>
		///<param name = "body">Bucket selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_buckets", "job_id, body")]
		public Task<TResponse> GetBucketsAsync<TResponse>(string jobId, PostData body, GetBucketsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/buckets"), ctx, body, RequestParams(requestParameters));
		///<summary>GET on /_ml/calendars/{calendar_id}/events <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar-event.html</para></summary>
		///<param name = "calendarId">The ID of the calendar containing the events</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetCalendarEvents<TResponse>(string calendarId, GetCalendarEventsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/calendars/{calendarId:calendarId}/events"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/calendars/{calendar_id}/events <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar-event.html</para></summary>
		///<param name = "calendarId">The ID of the calendar containing the events</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_calendar_events", "calendar_id")]
		public Task<TResponse> GetCalendarEventsAsync<TResponse>(string calendarId, GetCalendarEventsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/calendars/{calendarId:calendarId}/events"), ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/calendars <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html</para></summary>
		///<param name = "body">Calendar selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetCalendars<TResponse>(PostData body, GetCalendarsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/calendars", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/calendars <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html</para></summary>
		///<param name = "body">Calendar selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_calendars", "body")]
		public Task<TResponse> GetCalendarsAsync<TResponse>(PostData body, GetCalendarsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/calendars", ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/calendars/{calendar_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to fetch</param>
		///<param name = "body">Calendar selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetCalendars<TResponse>(string calendarId, PostData body, GetCalendarsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/calendars/{calendarId:calendarId}"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/calendars/{calendar_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to fetch</param>
		///<param name = "body">Calendar selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_calendars", "calendar_id, body")]
		public Task<TResponse> GetCalendarsAsync<TResponse>(string calendarId, PostData body, GetCalendarsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/calendars/{calendarId:calendarId}"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/categories/{category_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html</para></summary>
		///<param name = "jobId">The name of the job</param>
		///<param name = "categoryId">The identifier of the category definition of interest</param>
		///<param name = "body">Category selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetCategories<TResponse>(string jobId, long categoryId, PostData body, GetCategoriesRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/categories/{categoryId:categoryId}"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/categories/{category_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html</para></summary>
		///<param name = "jobId">The name of the job</param>
		///<param name = "categoryId">The identifier of the category definition of interest</param>
		///<param name = "body">Category selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_categories", "job_id, category_id, body")]
		public Task<TResponse> GetCategoriesAsync<TResponse>(string jobId, long categoryId, PostData body, GetCategoriesRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/categories/{categoryId:categoryId}"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/categories/ <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html</para></summary>
		///<param name = "jobId">The name of the job</param>
		///<param name = "body">Category selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetCategories<TResponse>(string jobId, PostData body, GetCategoriesRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/categories/"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/categories/ <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html</para></summary>
		///<param name = "jobId">The name of the job</param>
		///<param name = "body">Category selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_categories", "job_id, body")]
		public Task<TResponse> GetCategoriesAsync<TResponse>(string jobId, PostData body, GetCategoriesRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/categories/"), ctx, body, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetDataFrameAnalytics<TResponse>(string id, GetDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/data_frame/analytics/{id:id}"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_data_frame_analytics", "id")]
		public Task<TResponse> GetDataFrameAnalyticsAsync<TResponse>(string id, GetDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/data_frame/analytics/{id:id}"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetDataFrameAnalytics<TResponse>(GetDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/data_frame/analytics", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_data_frame_analytics", "")]
		public Task<TResponse> GetDataFrameAnalyticsAsync<TResponse>(GetDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/data_frame/analytics", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetDataFrameAnalyticsStats<TResponse>(GetDataFrameAnalyticsStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/data_frame/analytics/_stats", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_data_frame_analytics_stats", "")]
		public Task<TResponse> GetDataFrameAnalyticsStatsAsync<TResponse>(GetDataFrameAnalyticsStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/data_frame/analytics/_stats", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics/{id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html</para></summary>
		///<param name = "id">The ID of the data frame analytics stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetDataFrameAnalyticsStats<TResponse>(string id, GetDataFrameAnalyticsStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/data_frame/analytics/{id:id}/_stats"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/data_frame/analytics/{id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html</para></summary>
		///<param name = "id">The ID of the data frame analytics stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_data_frame_analytics_stats", "id")]
		public Task<TResponse> GetDataFrameAnalyticsStatsAsync<TResponse>(string id, GetDataFrameAnalyticsStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/data_frame/analytics/{id:id}/_stats"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/{datafeed_id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeeds stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetDatafeedStats<TResponse>(string datafeedId, GetDatafeedStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_stats"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/{datafeed_id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeeds stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_datafeed_stats", "datafeed_id")]
		public Task<TResponse> GetDatafeedStatsAsync<TResponse>(string datafeedId, GetDatafeedStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_stats"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetDatafeedStats<TResponse>(GetDatafeedStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/datafeeds/_stats", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_datafeed_stats", "")]
		public Task<TResponse> GetDatafeedStatsAsync<TResponse>(GetDatafeedStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/datafeeds/_stats", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/{datafeed_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeeds to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetDatafeeds<TResponse>(string datafeedId, GetDatafeedsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/datafeeds/{datafeedId:datafeedId}"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/{datafeed_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeeds to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_datafeeds", "datafeed_id")]
		public Task<TResponse> GetDatafeedsAsync<TResponse>(string datafeedId, GetDatafeedsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/datafeeds/{datafeedId:datafeedId}"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetDatafeeds<TResponse>(GetDatafeedsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/datafeeds", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_datafeeds", "")]
		public Task<TResponse> GetDatafeedsAsync<TResponse>(GetDatafeedsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/datafeeds", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/filters <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetFilters<TResponse>(GetFiltersRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/filters", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/filters <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_filters", "")]
		public Task<TResponse> GetFiltersAsync<TResponse>(GetFiltersRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/filters", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/filters/{filter_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetFilters<TResponse>(string filterId, GetFiltersRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/filters/{filterId:filterId}"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/filters/{filter_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_filters", "filter_id")]
		public Task<TResponse> GetFiltersAsync<TResponse>(string filterId, GetFiltersRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/filters/{filterId:filterId}"), ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/influencers <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-influencer.html</para></summary>
		///<param name = "jobId">Identifier for the anomaly detection job</param>
		///<param name = "body">Influencer selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetInfluencers<TResponse>(string jobId, PostData body, GetInfluencersRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/influencers"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/influencers <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-influencer.html</para></summary>
		///<param name = "jobId">Identifier for the anomaly detection job</param>
		///<param name = "body">Influencer selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_influencers", "job_id, body")]
		public Task<TResponse> GetInfluencersAsync<TResponse>(string jobId, PostData body, GetInfluencersRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/influencers"), ctx, body, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetJobStats<TResponse>(GetJobStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/anomaly_detectors/_stats", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_job_stats", "")]
		public Task<TResponse> GetJobStatsAsync<TResponse>(GetJobStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/anomaly_detectors/_stats", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors/{job_id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html</para></summary>
		///<param name = "jobId">The ID of the jobs stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetJobStats<TResponse>(string jobId, GetJobStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/anomaly_detectors/{jobId:jobId}/_stats"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors/{job_id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html</para></summary>
		///<param name = "jobId">The ID of the jobs stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_job_stats", "job_id")]
		public Task<TResponse> GetJobStatsAsync<TResponse>(string jobId, GetJobStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/anomaly_detectors/{jobId:jobId}/_stats"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html</para></summary>
		///<param name = "jobId">The ID of the jobs to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetJobs<TResponse>(string jobId, GetJobsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/anomaly_detectors/{jobId:jobId}"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html</para></summary>
		///<param name = "jobId">The ID of the jobs to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_jobs", "job_id")]
		public Task<TResponse> GetJobsAsync<TResponse>(string jobId, GetJobsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/anomaly_detectors/{jobId:jobId}"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetJobs<TResponse>(GetJobsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/anomaly_detectors", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/anomaly_detectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_jobs", "")]
		public Task<TResponse> GetJobsAsync<TResponse>(GetJobsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/anomaly_detectors", ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to fetch</param>
		///<param name = "body">Model snapshot selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetModelSnapshots<TResponse>(string jobId, string snapshotId, PostData body, GetModelSnapshotsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to fetch</param>
		///<param name = "body">Model snapshot selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_model_snapshots", "job_id, snapshot_id, body")]
		public Task<TResponse> GetModelSnapshotsAsync<TResponse>(string jobId, string snapshotId, PostData body, GetModelSnapshotsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "body">Model snapshot selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetModelSnapshots<TResponse>(string jobId, PostData body, GetModelSnapshotsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "body">Model snapshot selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_model_snapshots", "job_id, body")]
		public Task<TResponse> GetModelSnapshotsAsync<TResponse>(string jobId, PostData body, GetModelSnapshotsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/overall_buckets <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html</para></summary>
		///<param name = "jobId">The job IDs for which to calculate overall bucket results</param>
		///<param name = "body">Overall bucket selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetOverallBuckets<TResponse>(string jobId, PostData body, GetOverallBucketsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/overall_buckets"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/overall_buckets <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html</para></summary>
		///<param name = "jobId">The job IDs for which to calculate overall bucket results</param>
		///<param name = "body">Overall bucket selection details if not provided in URI</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_overall_buckets", "job_id, body")]
		public Task<TResponse> GetOverallBucketsAsync<TResponse>(string jobId, PostData body, GetOverallBucketsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/overall_buckets"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/records <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-record.html</para></summary>
		///<param name = "jobId">The ID of the job</param>
		///<param name = "body">Record selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse GetAnomalyRecords<TResponse>(string jobId, PostData body, GetAnomalyRecordsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/records"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/results/records <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-record.html</para></summary>
		///<param name = "jobId">The ID of the job</param>
		///<param name = "body">Record selection criteria</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.get_records", "job_id, body")]
		public Task<TResponse> GetAnomalyRecordsAsync<TResponse>(string jobId, PostData body, GetAnomalyRecordsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/results/records"), ctx, body, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models/{model_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html</para></summary>
		///<param name = "modelId">The ID of the trained models to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetTrainedModels<TResponse>(string modelId, GetTrainedModelsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/trained_models/{modelId:modelId}"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models/{model_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html</para></summary>
		///<param name = "modelId">The ID of the trained models to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_trained_models", "model_id")]
		public Task<TResponse> GetTrainedModelsAsync<TResponse>(string modelId, GetTrainedModelsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/trained_models/{modelId:modelId}"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetTrainedModels<TResponse>(GetTrainedModelsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/trained_models", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_trained_models", "")]
		public Task<TResponse> GetTrainedModelsAsync<TResponse>(GetTrainedModelsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/trained_models", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models/{model_id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html</para></summary>
		///<param name = "modelId">The ID of the trained models stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetTrainedModelsStats<TResponse>(string modelId, GetTrainedModelsStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/trained_models/{modelId:modelId}/_stats"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models/{model_id}/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html</para></summary>
		///<param name = "modelId">The ID of the trained models stats to fetch</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_trained_models_stats", "model_id")]
		public Task<TResponse> GetTrainedModelsStatsAsync<TResponse>(string modelId, GetTrainedModelsStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/trained_models/{modelId:modelId}/_stats"), ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse GetTrainedModelsStats<TResponse>(GetTrainedModelsStatsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/trained_models/_stats", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/trained_models/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.get_trained_models_stats", "")]
		public Task<TResponse> GetTrainedModelsStatsAsync<TResponse>(GetTrainedModelsStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/trained_models/_stats", ctx, null, RequestParams(requestParameters));
		///<summary>GET on /_ml/info <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-ml-info.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse Info<TResponse>(MachineLearningInfoRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, "_ml/info", null, RequestParams(requestParameters));
		///<summary>GET on /_ml/info <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-ml-info.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.info", "")]
		public Task<TResponse> InfoAsync<TResponse>(MachineLearningInfoRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, "_ml/info", ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_open <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-open-job.html</para></summary>
		///<param name = "jobId">The ID of the job to open</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse OpenJob<TResponse>(string jobId, OpenJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_open"), null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_open <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-open-job.html</para></summary>
		///<param name = "jobId">The ID of the job to open</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.open_job", "job_id")]
		public Task<TResponse> OpenJobAsync<TResponse>(string jobId, OpenJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_open"), ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/calendars/{calendar_id}/events <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-calendar-event.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "body">A list of events</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PostCalendarEvents<TResponse>(string calendarId, PostData body, PostCalendarEventsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/calendars/{calendarId:calendarId}/events"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/calendars/{calendar_id}/events <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-calendar-event.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "body">A list of events</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.post_calendar_events", "calendar_id, body")]
		public Task<TResponse> PostCalendarEventsAsync<TResponse>(string calendarId, PostData body, PostCalendarEventsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/calendars/{calendarId:calendarId}/events"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_data <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-data.html</para></summary>
		///<param name = "jobId">The name of the job receiving the data</param>
		///<param name = "body">The data to process</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PostJobData<TResponse>(string jobId, PostData body, PostJobDataRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_data"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_data <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-data.html</para></summary>
		///<param name = "jobId">The name of the job receiving the data</param>
		///<param name = "body">The data to process</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.post_data", "job_id, body")]
		public Task<TResponse> PostJobDataAsync<TResponse>(string jobId, PostData body, PostJobDataRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_data"), ctx, body, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/{datafeed_id}/_preview <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to preview</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PreviewDatafeed<TResponse>(string datafeedId, PreviewDatafeedRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(GET, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_preview"), null, RequestParams(requestParameters));
		///<summary>GET on /_ml/datafeeds/{datafeed_id}/_preview <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to preview</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.preview_datafeed", "datafeed_id")]
		public Task<TResponse> PreviewDatafeedAsync<TResponse>(string datafeedId, PreviewDatafeedRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_preview"), ctx, null, RequestParams(requestParameters));
		///<summary>PUT on /_ml/calendars/{calendar_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to create</param>
		///<param name = "body">The calendar details</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PutCalendar<TResponse>(string calendarId, PostData body, PutCalendarRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/calendars/{calendarId:calendarId}"), body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/calendars/{calendar_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to create</param>
		///<param name = "body">The calendar details</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.put_calendar", "calendar_id, body")]
		public Task<TResponse> PutCalendarAsync<TResponse>(string calendarId, PostData body, PutCalendarRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/calendars/{calendarId:calendarId}"), ctx, body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/calendars/{calendar_id}/jobs/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar-job.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "jobId">The ID of the job to add to the calendar</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PutCalendarJob<TResponse>(string calendarId, string jobId, PutCalendarJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/calendars/{calendarId:calendarId}/jobs/{jobId:jobId}"), null, RequestParams(requestParameters));
		///<summary>PUT on /_ml/calendars/{calendar_id}/jobs/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar-job.html</para></summary>
		///<param name = "calendarId">The ID of the calendar to modify</param>
		///<param name = "jobId">The ID of the job to add to the calendar</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.put_calendar_job", "calendar_id, job_id")]
		public Task<TResponse> PutCalendarJobAsync<TResponse>(string calendarId, string jobId, PutCalendarJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/calendars/{calendarId:calendarId}/jobs/{jobId:jobId}"), ctx, null, RequestParams(requestParameters));
		///<summary>PUT on /_ml/data_frame/analytics/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/put-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to create</param>
		///<param name = "body">The data frame analytics configuration</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse PutDataFrameAnalytics<TResponse>(string id, PostData body, PutDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/data_frame/analytics/{id:id}"), body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/data_frame/analytics/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/put-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to create</param>
		///<param name = "body">The data frame analytics configuration</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.put_data_frame_analytics", "id, body")]
		public Task<TResponse> PutDataFrameAnalyticsAsync<TResponse>(string id, PostData body, PutDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/data_frame/analytics/{id:id}"), ctx, body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/datafeeds/{datafeed_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to create</param>
		///<param name = "body">The datafeed config</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PutDatafeed<TResponse>(string datafeedId, PostData body, PutDatafeedRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/datafeeds/{datafeedId:datafeedId}"), body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/datafeeds/{datafeed_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to create</param>
		///<param name = "body">The datafeed config</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.put_datafeed", "datafeed_id, body")]
		public Task<TResponse> PutDatafeedAsync<TResponse>(string datafeedId, PostData body, PutDatafeedRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/datafeeds/{datafeedId:datafeedId}"), ctx, body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/filters/{filter_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to create</param>
		///<param name = "body">The filter details</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PutFilter<TResponse>(string filterId, PostData body, PutFilterRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/filters/{filterId:filterId}"), body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/filters/{filter_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to create</param>
		///<param name = "body">The filter details</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.put_filter", "filter_id, body")]
		public Task<TResponse> PutFilterAsync<TResponse>(string filterId, PostData body, PutFilterRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/filters/{filterId:filterId}"), ctx, body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/anomaly_detectors/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html</para></summary>
		///<param name = "jobId">The ID of the job to create</param>
		///<param name = "body">The job</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse PutJob<TResponse>(string jobId, PostData body, PutJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/anomaly_detectors/{jobId:jobId}"), body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/anomaly_detectors/{job_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html</para></summary>
		///<param name = "jobId">The ID of the job to create</param>
		///<param name = "body">The job</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.put_job", "job_id, body")]
		public Task<TResponse> PutJobAsync<TResponse>(string jobId, PostData body, PutJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/anomaly_detectors/{jobId:jobId}"), ctx, body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/trained_models/{model_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-models.html</para></summary>
		///<param name = "modelId">The ID of the trained models to store</param>
		///<param name = "body">The trained model configuration</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse PutTrainedModel<TResponse>(string modelId, PostData body, PutTrainedModelRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(PUT, Url($"_ml/trained_models/{modelId:modelId}"), body, RequestParams(requestParameters));
		///<summary>PUT on /_ml/trained_models/{model_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-models.html</para></summary>
		///<param name = "modelId">The ID of the trained models to store</param>
		///<param name = "body">The trained model configuration</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.put_trained_model", "model_id, body")]
		public Task<TResponse> PutTrainedModelAsync<TResponse>(string modelId, PostData body, PutTrainedModelRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ml/trained_models/{modelId:modelId}"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-revert-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to revert to</param>
		///<param name = "body">Reversion options</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse RevertModelSnapshot<TResponse>(string jobId, string snapshotId, PostData body, RevertModelSnapshotRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}/_revert"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-revert-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to revert to</param>
		///<param name = "body">Reversion options</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.revert_model_snapshot", "job_id, snapshot_id, body")]
		public Task<TResponse> RevertModelSnapshotAsync<TResponse>(string jobId, string snapshotId, PostData body, RevertModelSnapshotRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}/_revert"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/set_upgrade_mode <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse SetUpgradeMode<TResponse>(SetUpgradeModeRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/set_upgrade_mode", null, RequestParams(requestParameters));
		///<summary>POST on /_ml/set_upgrade_mode <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.set_upgrade_mode", "")]
		public Task<TResponse> SetUpgradeModeAsync<TResponse>(SetUpgradeModeRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/set_upgrade_mode", ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_start <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/start-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to start</param>
		///<param name = "body">The start data frame analytics parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse StartDataFrameAnalytics<TResponse>(string id, PostData body, StartDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_start"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_start <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/start-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to start</param>
		///<param name = "body">The start data frame analytics parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.start_data_frame_analytics", "id, body")]
		public Task<TResponse> StartDataFrameAnalyticsAsync<TResponse>(string id, PostData body, StartDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_start"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/datafeeds/{datafeed_id}/_start <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to start</param>
		///<param name = "body">The start datafeed parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse StartDatafeed<TResponse>(string datafeedId, PostData body, StartDatafeedRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_start"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/datafeeds/{datafeed_id}/_start <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to start</param>
		///<param name = "body">The start datafeed parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.start_datafeed", "datafeed_id, body")]
		public Task<TResponse> StartDatafeedAsync<TResponse>(string datafeedId, PostData body, StartDatafeedRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_start"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_stop <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to stop</param>
		///<param name = "body">The stop data frame analytics parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse StopDataFrameAnalytics<TResponse>(string id, PostData body, StopDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_stop"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_stop <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to stop</param>
		///<param name = "body">The stop data frame analytics parameters</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.stop_data_frame_analytics", "id, body")]
		public Task<TResponse> StopDataFrameAnalyticsAsync<TResponse>(string id, PostData body, StopDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_stop"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/datafeeds/{datafeed_id}/_stop <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-stop-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to stop</param>
		///<param name = "body">The URL params optionally sent in the body</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse StopDatafeed<TResponse>(string datafeedId, PostData body, StopDatafeedRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_stop"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/datafeeds/{datafeed_id}/_stop <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-stop-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to stop</param>
		///<param name = "body">The URL params optionally sent in the body</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.stop_datafeed", "datafeed_id, body")]
		public Task<TResponse> StopDatafeedAsync<TResponse>(string datafeedId, PostData body, StopDatafeedRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_stop"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/update-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to update</param>
		///<param name = "body">The data frame analytics settings to update</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		public TResponse UpdateDataFrameAnalytics<TResponse>(string id, PostData body, UpdateDataFrameAnalyticsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_update"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/data_frame/analytics/{id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/update-dfanalytics.html</para></summary>
		///<param name = "id">The ID of the data frame analytics to update</param>
		///<param name = "body">The data frame analytics settings to update</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Beta within the Elasticsearch server, this functionality is in Beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		[MapsApi("ml.update_data_frame_analytics", "id, body")]
		public Task<TResponse> UpdateDataFrameAnalyticsAsync<TResponse>(string id, PostData body, UpdateDataFrameAnalyticsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/data_frame/analytics/{id:id}/_update"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/datafeeds/{datafeed_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to update</param>
		///<param name = "body">The datafeed update settings</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse UpdateDatafeed<TResponse>(string datafeedId, PostData body, UpdateDatafeedRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_update"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/datafeeds/{datafeed_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-datafeed.html</para></summary>
		///<param name = "datafeedId">The ID of the datafeed to update</param>
		///<param name = "body">The datafeed update settings</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.update_datafeed", "datafeed_id, body")]
		public Task<TResponse> UpdateDatafeedAsync<TResponse>(string datafeedId, PostData body, UpdateDatafeedRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/datafeeds/{datafeedId:datafeedId}/_update"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/filters/{filter_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to update</param>
		///<param name = "body">The filter update</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse UpdateFilter<TResponse>(string filterId, PostData body, UpdateFilterRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/filters/{filterId:filterId}/_update"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/filters/{filter_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-filter.html</para></summary>
		///<param name = "filterId">The ID of the filter to update</param>
		///<param name = "body">The filter update</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.update_filter", "filter_id, body")]
		public Task<TResponse> UpdateFilterAsync<TResponse>(string filterId, PostData body, UpdateFilterRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/filters/{filterId:filterId}/_update"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-job.html</para></summary>
		///<param name = "jobId">The ID of the job to create</param>
		///<param name = "body">The job update settings</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse UpdateJob<TResponse>(string jobId, PostData body, UpdateJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_update"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-job.html</para></summary>
		///<param name = "jobId">The ID of the job to create</param>
		///<param name = "body">The job update settings</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.update_job", "job_id, body")]
		public Task<TResponse> UpdateJobAsync<TResponse>(string jobId, PostData body, UpdateJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/_update"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to update</param>
		///<param name = "body">The model snapshot properties to update</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse UpdateModelSnapshot<TResponse>(string jobId, string snapshotId, PostData body, UpdateModelSnapshotRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}/_update"), body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job to fetch</param>
		///<param name = "snapshotId">The ID of the snapshot to update</param>
		///<param name = "body">The model snapshot properties to update</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.update_model_snapshot", "job_id, snapshot_id, body")]
		public Task<TResponse> UpdateModelSnapshotAsync<TResponse>(string jobId, string snapshotId, PostData body, UpdateModelSnapshotRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}/_update"), ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_upgrade <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-upgrade-job-model-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job</param>
		///<param name = "snapshotId">The ID of the snapshot</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse UpgradeJobSnapshot<TResponse>(string jobId, string snapshotId, UpgradeJobSnapshotRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}/_upgrade"), null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_upgrade <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-upgrade-job-model-snapshot.html</para></summary>
		///<param name = "jobId">The ID of the job</param>
		///<param name = "snapshotId">The ID of the snapshot</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.upgrade_job_snapshot", "job_id, snapshot_id")]
		public Task<TResponse> UpgradeJobSnapshotAsync<TResponse>(string jobId, string snapshotId, UpgradeJobSnapshotRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ml/anomaly_detectors/{jobId:jobId}/model_snapshots/{snapshotId:snapshotId}/_upgrade"), ctx, null, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/_validate <para>https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html</para></summary>
		///<param name = "body">The job config</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse ValidateJob<TResponse>(PostData body, ValidateJobRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/anomaly_detectors/_validate", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/_validate <para>https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html</para></summary>
		///<param name = "body">The job config</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.validate", "body")]
		public Task<TResponse> ValidateJobAsync<TResponse>(PostData body, ValidateJobRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/anomaly_detectors/_validate", ctx, body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/_validate/detector <para>https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html</para></summary>
		///<param name = "body">The detector</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		public TResponse ValidateDetector<TResponse>(PostData body, ValidateDetectorRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new() => DoRequest<TResponse>(POST, "_ml/anomaly_detectors/_validate/detector", body, RequestParams(requestParameters));
		///<summary>POST on /_ml/anomaly_detectors/_validate/detector <para>https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html</para></summary>
		///<param name = "body">The detector</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[MapsApi("ml.validate_detector", "body")]
		public Task<TResponse> ValidateDetectorAsync<TResponse>(PostData body, ValidateDetectorRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new() => DoRequestAsync<TResponse>(POST, "_ml/anomaly_detectors/_validate/detector", ctx, body, RequestParams(requestParameters));
	}
}